﻿<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeFile="GettingStart.aspx.cs" Inherits="GettingStart" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <link href="../Style/LessonsStyle.css" rel="stylesheet" type="text/css" />
    Първи стъпки в WPF Създаване на примерен проект
    <ul>
        <li>Типове WPF приложеня</li>
        <li>Създаване на WPF проект в VS</li>
        <li>Работа с контролите</li>
        <li>Обработка на евенти</li>
    </ul>
    <div>
        <p>
            Типове WPF приложения
        </p>
        <p>
            <span>Основните типове WPF приложения са:<br />
                WPF Application. Това е основния еквивалент на .NET Windows Forms проект<br />
                WPF Browser Application. Наподобява ASP.NET приложение но е лимитирано от страна
                на неймспейси<br />
                WPF Custom Control Library Project. Tова е проект за създаване на контрол за многократно
                използване. Основния продукт от този темплейт е асембли което може да се преизползва
                отново или да се дистрибутира.<br />WPF User Control Library. Дава възможност
            да се комбинират функционалсностите на една или повече контроли в една</p>
        </span>
    </div>
    <div>
        <p>
            Създаване на WPF проект в Visual Studio
        </p>
        <p>
            Отворете студиото и следвайте стъпките за създаване на нов проект:<br />
            Select File -> New Project -> WPF Application<br />
            <asp:Image ID="ImageWPFProject" ImageUrl="~/Images/WPF_PROJECT.jpg" runat="server" /><br />
            Този проект трябва да създаде два основни файла Window1.xaml и App.xaml.
            <br />
            App.xaml - това е основния XAML файл който се създава с приложението. От този файл
            се зареждат и контролират обектите.
            <br />
            Window1.xaml - това е видимия интерфеис на приложението.
            <br />
        </p>
    </div>
    <div>
        <p>
            Работа с конторлите
        </p>
        <p>
            Контролите са основните елементи в създаването на WPF приложение. Майкрософт са
            написали всичко контоли за WPF с managed code. Двата основни клава за създаване
            на WPF контоли са FrameworkElement и Contol класа. Някои контоли съдържат други
            контроли които са вложени в тях. Контоли които съдържат visual tree могат да хвърлят
            евенти дори когато са в дървото. Чрез Event routing се предоставя мнго по голяма
            гъвкавост и разширяемост про обработката на евенти. Контролите могат да насочват
            командите и да извикват споделена функционалност междъ контолите и UI елементите.
            Насочването на командите е възможно да се предостави единично извикващи деистивия.
            <p>
                Типове контроли:</p>
            <p>
                Content contols- това са контоли които преодоставят основна функционалност и съдържат
                основни елементи като string, integer, image. Contente контролите не съдържат в
                себеси items колекции или header пропъртита.
            </p>
            <p>
                Item contols- това са контоли коитио съдържат лист от елементи. Такива контроли
                са Combobox ContextMenu, ListBox, Menu и други. Те предлагат колекция от елементи
                но не и Content или Header пропъртита.
            </p>
            <p>
                Headered items contols - това са контроли които съдържат уникално Header и Context
                пропърти</p>
        </p>
    </div>
    <div>
        <p>
            Обработка на евенти
        </p>
        <p>
            Евентите са дефинирани като изолирани събития на които приложението може да отговори.
            Общите евенти са button click, key press или mouse actions. Също така могат да се
            включат и програматично създадени евенти. В WPF има два основни начина за обработка
            на евенти единия е чрез XAML а другия програматично.
        </p>
        <p>
            Routed Events - създаването о обработването на евенти в WPF е базирано на ѝАМЛ структурата
            на кода. ѝАМЛ страницата може да съдържа вложени контоли. Необходимо е разработчика
            да премине през цялото дърво за да вдигне евентите. Евентите в WPF се наричат routed
            защото това е съвсем нов процес по обработка на евенти. Лист от евенти ще се вдигне
            ако ако се предостави пълен поглед върху visual tree</p>
        <p>
        </p>
        <p>
            Direct Events - представлява типичия подход към които .NET програмистите са свикнали.
        </p>
    </div>
</asp:Content>
